package com.itheima.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;

import java.security.Key;
import java.util.Date;
import java.util.Map;

public class JwtUtils {

    // 自定义密钥
    private static String signKey = "SVRIRUlNQQ==";
    // 过期时间24h
    private static Long expire = 43200000L;

    private static final Key SIGN_KEY = Keys.secretKeyFor(SignatureAlgorithm.HS256);
    private static final Long EXPIRE = 43200000L;


    public static String generateJwt(Map<String, Object> claims) {
        return Jwts.builder()
                .setClaims(claims)
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
                .signWith(SIGN_KEY)
                .compact();
    }

    public static Claims parseJWT(String token) {
        return Jwts.parser()
                .setSigningKey(SIGN_KEY)
                .build()
                .parseClaimsJws(token)
                .getBody();
    }
//    /**
//     * 生成JWT令牌
//     * @return
//     */
//    public static String generateJwt(Map<String,Object> claims){
//        String jwt = Jwts.builder()
//                .addClaims(claims)
//                .signWith(SignatureAlgorithm.HS256, signKey)
//                .setExpiration(new Date(System.currentTimeMillis() + expire))
//                .compact();
//        return jwt;
//    }
//
//    /**
//     * 解析JWT令牌
//     * @param jwt JWT令牌
//     * @return JWT第二部分负载 payload 中存储的内容
//     */
//    public static Claims parseJWT(String jwt){
//        Claims claims = Jwts.parser()
//                .setSigningKey(signKey)
//                .build()
//                .parseClaimsJws(jwt)
//                .getBody();
//        return claims;
//    }
}
